package wator.view.swing.jogl;

import wator.model.Integer3DVector;
import wator.model.IntegerVector;

/**
 * Creates a 3D vector from another vector with lower dimension. This is used
 * when two dimensional universes are displayed by Jogl, setting the z-
 * coordinate to zero.
 */
public interface JoglVectorFactory {
	
	/**
	 * Takes a vector of a predefined dimension less or equal 3 and converts it
	 * to a 3D vector.
	 * 
	 * @param v vector of a certain dimension
	 * @return 3D vector, which then can be used in Jogl
	 * @throws NullPointerException if <code>v</code> is null
	 * @throws ClassCastException if <code>v</code> does not have the desired
	 * 			dimension
	 */
	Integer3DVector generateVector(IntegerVector v);
}
